<?php

namespace App\BO\PaymentState\Pay;

use Carbon\Carbon;

class PayInfo implements IPayInfo
{
    /**
     * @var Carbon
     */
    private $paidAt;

    /**
     * @var string
     */
    private $tradeNo;

    /**
     * @var string
     */
    private $paymentMethod;

    /**
     * 第三方支付流水号
     * @var string
     */
    private $paymentNo;

    /**
     * 订单状态
     * @var bool
     */
    private $paySuccess;

    /**
     * @var double
     */
    private $payMoney;

    /**
     * @return float
     */
    public function getPayMoney(): float
    {
        return $this->payMoney;
    }

    /**
     * @param float $payMoney
     */
    public function setPayMoney(float $payMoney): void
    {
        $this->payMoney = $payMoney;
    }

    /**
     * @return Carbon
     */
    public function getPaidAt(): Carbon
    {
        return $this->paidAt;
    }

    /**
     * @param Carbon $paidAt
     */
    public function setPaidAt(Carbon $paidAt): void
    {
        $this->paidAt = $paidAt;
    }

    /**
     * @return string
     */
    public function getPaymentMethod(): string
    {
        return $this->paymentMethod;
    }

    /**
     * @param string $paymentMethod
     */
    public function setPaymentMethod(string $paymentMethod): void
    {
        $this->paymentMethod = $paymentMethod;
    }

    /**
     * @return string
     */
    public function getPaymentNo(): string
    {
        return $this->paymentNo;
    }

    /**
     * @param string $paymentNo
     */
    public function setPaymentNo(string $paymentNo): void
    {
        $this->paymentNo = $paymentNo;
    }

    /**
     * @return bool
     */
    public function isPaySuccess(): bool
    {
        return $this->paySuccess;
    }

    /**
     * @param bool $paySuccess
     */
    public function setPaySuccess(bool $paySuccess): void
    {
        $this->paySuccess = $paySuccess;
    }

    /**
     * @return string
     */
    public function getTradeNo(): string
    {
        return $this->tradeNo;
    }

    /**
     * @param string $tradeNo
     */
    public function setTradeNo(string $tradeNo): void
    {
        $this->tradeNo = $tradeNo;
    }
}
